/*
 * FimJogo.java
 *
 * Criado em 20 de Agosto de 2007, 17:51
 */

package codebreaker.protocolo;

import java.nio.ByteBuffer;

/**
 * Classe que define um pacote de rede do protocolo Code Breaker.
 * O pacote DESISTENCIA é JOGADOR-JOGADOR e é utilizado para
 * desistir de um jogo.
 *
 * @author Rodrigo
 */
public class FimJogo extends Pacote {
    
    public static final int ID = 6;
    public static final int TAMANHO = 1;
    
    public static final byte DESISTENCIA = 0;
    public static final byte VITORIA = 1;
    public static final byte DERROTA = 2;
    
    public static final String[] strMotivo = {"Desistencia", "Vitoria", "Derrota"};
    
    private byte motivo;
    
    /**
     * Cria uma nova instância de Convite
     */
    public FimJogo(byte motivo) {
	super();
	this.motivo = motivo;
    }
    
    /**
     * Cria um pacote a partir de um conjunto de bytes
     * @param bytes Conjunto de bytes
     * @param withID Sinaliza se os bytes tem o id do pacote
     */
    public FimJogo(byte bytes[], boolean withID) {
	super(bytes, withID);
    }
    
    protected void fromBytes(ByteBuffer buffer) {
	motivo = buffer.get();
    }
    
    public byte getID() {
	return ID;
    }
    
    public int getTamanho() {
	return TAMANHO;
    }
    
    protected void writeBytes(ByteBuffer buffer) {
	buffer.put(motivo);
    }
    
    /**
     * Retorna uma representacao do pacote
     * em texto(string)
     * @return Texto representando o pacote
     */
    public String toString() {
	return "fim do jogo: " + strMotivo[motivo];
    }
    
    public byte getMotivo() {
	return motivo;
    }
    
    public void setMotivo(byte motivo) {
	this.motivo = motivo;
    }
}
